// pages/devices/real.ts

const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    sn:"", 
    dev:{}
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) { 
    this.setData(options)
  }, 
  refreshDevReal(){
    var me = this;
    try{       
      app.seed.getDeviceDatas('d' , me.data.sn).then(res=>{
        var real = res&& res[me.data.sn] ? res[me.data.sn]:{};
        me.setData({
          dev:real
        });
      })
    }
    catch(error){
      console.log(error);
    }
  },

  acBefore(){
    var me = this;
    var realStatus={
      success:0
    };
    return new Promise((success , faild)=>{
      try {
        app.seed.callDeviceApi('getRealData',{snCode: me.data.sn}).then(res=>{
          console.log('获取到设备状态' , res);
          if( res && res.length>0){
            realStatus = res[0];
            realStatus.success=1;
          }
          success(realStatus);
        })
      } catch (error) {
        console.log(error);
        success();
      }
    })
  },
  acOpenLed(){
    var me = this;
    try{  
      me.acLed(1);
    }
    catch(error){
      console.log(error);
    }
  },
  acCloseLed(){
    console.log('close');
    var me = this;
    try{  
      me.acLed(0);
    }
    catch(error){
      console.log(error);
    }
  },
  acLed(newSt){
    console.log('close');
    var me = this;
    try{  
      me.acBefore().then(status=>{
        console.log(status)
        var isOnline =  status.success && status.status=='on';
        if( isOnline){
          var ps = {
            snCode: me.data.sn ,
            light:newSt.toString()
          }; 
          console.log('发送操作指令' , ps);
          app.seed.callDeviceApi('setLightStatus',ps).then(res=>{   
            console.log('操作指令完成：',res)         
            wx.showToast({
              title: '正在获取设备状态...',
              icon: 'success',
              duration: 8000
            });
            setTimeout(()=>{
              me.refreshDevReal();
            },5000);
          })
        }
        else{
          wx.showToast({
            title: '当前设备不在线！',
            icon: 'error',
            duration: 2000
          });
          me.refreshDevReal(); 
        }
      })
    }
    catch(error){
      console.log(error);
    }
  },
  acInput(){
    var me = this;
    try{  
      wx.showToast({
        title: '已发送采集指令',
        icon: 'success',
        duration: 2000
      });
      me.acBefore().then(status=>{
        console.log(status)
        var isOnline =  status.success && status.status=='on';
        if( isOnline){
          wx.showToast({
            title: '数据采集完成！',
            icon: 'success',
            duration: 2000
          });
          me.refreshDevReal();
        }
        else{
          wx.showToast({
            title: '当前设备不在线！',
            icon: 'error',
            duration: 2000
          });
          me.refreshDevReal(); 
        }
      })
    }
    catch(error){
      console.log(error);
    }
  },
  acTakephoto(){
    var me = this;
    try{  
      me.acBefore().then(status=>{
        console.log(status)
        var isOnline =  status.success && status.status=='on';
        if( isOnline){
          app.seed.callDeviceApi('getNewImage',{snCode: me.data.sn  }).then(res=>{            
            wx.showToast({
              title: '已下发拍照指令，约20秒后重新刷新页面...',
              icon: 'success',
              duration: 20000
            });
            setTimeout(()=>{
              me.refreshDevReal();
            },20000);
          })
        }
        else{
          wx.showToast({
            title: '当前设备不在线！',
            icon: 'error',
            duration: 2000
          });
          me.refreshDevReal(); 
        }
      })
    }
    catch(error){
      console.log(error);
    }
  },
  acPreview(en){
    var me = this;
    try {
      wx.previewImage({
        urls:[me.data.dev.imageUrl]
      })
    } catch (error) {
      console.log(error)
    }
  }, 

  

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() { 
      this.refreshDevReal();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.refreshDevReal();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})